package concurrent;

import java.util.concurrent.TimeUnit;

/**
 * 
 * finally在正常流程下都是会执行的,但是有些时候比如程序退出了,终止了.这个时候才不会被执行
 * 
 * @author jyzjyz12@163.com
 * @since 2017年2月23日 上午9:25:20
 */
public class DaemonsDontRunFinallyTest1 {

    /**
     * 
     * @param args
     */

    public static void main(String[] args) {
        Thread t = new Thread(new ADaemon());
        t.setDaemon(true);
        t.start();
    }
}

class ADaemon implements Runnable {
    public void run() {
        try {
            System.out.println("start ADaemon...");
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            System.out.println("Exiting via InterruptedException");
        } finally {
            System.out.println("This shoud be always run ?");
        }
    }
}